#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//void Print(int n)
//{
//	if (n > 9)
//	{
//		Print(n / 10);
//	}
//	printf("%d ", n % 10);
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	Print(n);
//	return 0;
//}
//int fac(int n)
//{
//	int ret = 1;
//	while (n>=1)
//	{
//		ret = ret*n;
//		n--;
//	}
//	return ret;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret=fac(n);
//	printf("%d\n", ret);
//	return 0;
//}
//int fac(int n)
//{
//	if (n == 1||n==0)
//	{
//		return 1;
//	}
//	 return n*fac(n - 1);
//}
//int main()
//{
//		int n = 0;
//		scanf("%d", &n);
//		int ret=fac(n);
//		printf("%d\n", ret);
//		return 0;
//}
//int my_strlen1(char arr[])
//{
//	int count = 0;
//	while (*arr != '\0')
//	{
//		count++;
//		arr++;
//	}
//	return count;
//}
//int my_strlen2(char arr[])
//{
//	if (*arr == '\0')
//	{
//		return 0;
//	}
//	return 1 + my_strlen2(arr + 1);
//}
//
//int main()
//{
//	char arr[] = "abcdef";
//	int len1=my_strlen1(arr);
//	int len2 = my_strlen2(arr);
//	printf("%d\n", len1);
//	printf("%d\n", len2);
//	return 0;
//}
//int my_strlen(char arr[])
//{
//	int count = 0;
//	while (*arr != '\0')
//	{
//		count++;
//		arr++;
//	}
//	return count;
//}
//void reverse(char arr[])
//{
//	 int len=my_strlen(arr);
//	 char tmp = arr[0];
//	 arr[0] = arr[len - 1];
//	 arr[len - 1] = '\0';
//	 if (my_strlen(arr+1) >= 2)
//	 {
//		 reverse(arr + 1);
//	 }
//	 arr[len - 1] = tmp;
// }
//	 
//int main()
//{
//	char arr[] = "abcdef";
//	reverse(arr);
//	printf("%s ", arr);
//	return 0;
//}
//int Pow(int n, int k)
//{
//	if (k == 0)
//	{
//		return 1;
//	}
//	else if (k > 0)
//	{
//		return n*Pow(n, k - 1);
//	}
//	else return 1.0 / pow(n, -k);
//	
//}
//int main()
//{
//	int n = 0;
//	int k = 0;
//	scanf("%d%d", &n, &k);
//	double ret=Pow(n, k);
//	printf("%lf\n", ret);
//	return 0;
//}
//int DigitSum(int n)
//{
//	if (n > 9)
//	{
//		return ((n % 10) + DigitSum(n / 10));
//	}
//else
//	return n;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret=DigitSum(n);
//	printf("%d\n", ret);
//	return 0;
//}
int fib(int n)
{
	if (n == 1 || n == 2)
	{
		return 1;
	}
	else
	{
		return (fib(n - 1) + fib(n - 2));
	}
}
int fib2(int n)
{
	int a = 1;
	int b = 1;
	int c = 1;
	while(n > 2)
	{
		c = a + b;
		a = b;
		b = c;
		n--;
	}
	return c;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int ret1=fib(n);
	int ret2 = fib2(n);
	printf("%d\n", ret1);
	printf("%d\n", ret2);
	return 0;
}